home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2001 May / SGI IRIX Base Documentation 2001 May.iso / usr / share / catman / a_man / cat1 / xlv_mgr.z / xlv_mgr
Encoding:
Text File  |  2001-04-17  |  39.4 KB  |  727 lines

  1.  
  2.  
  3.  
  4. xxxxllllvvvv____mmmmggggrrrr((((1111MMMM))))                                                        xxxxllllvvvv____mmmmggggrrrr((((1111MMMM))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      xlv_mgr - administers XLV logical volume objects and their disk labels
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      xxxxllllvvvv____mmmmggggrrrr [ ----rrrr root ] [ ----cccc cmdstring ] [ ----vvvv ] [ ----xxxx ] [ ----RRRR ]
  13.  
  14. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  15.      _x_l_v__m_g_r displays and modifies existing XLV objects (volumes, plexes,
  16.      volume elements, and XLV disk labels).  _x_l_v__m_g_r can operate on XLV
  17.      volumes even while they are mounted and in use.
  18.  
  19.      _x_l_v__m_g_r supports the following command line options:
  20.  
  21.      ----rrrr _r_o_o_t   Use _r_o_o_t as the root directory.  This is used in the miniroot
  22.                when / is mounted as /_r_o_o_t.
  23.  
  24.      ----cccc _c_m_d_s_t_r_i_n_g
  25.                Command line option.  Causes _x_l_v__m_g_r to go into command line
  26.                mode and use _c_m_d_s_t_r_i_n_g as the command input.  Multiple
  27.                instances of ----cccc are accumulated.
  28.  
  29.      ----vvvv        Verbose option.  Causes _x_l_v__m_g_r to generate more detailed
  30.                output.
  31.  
  32.      ----xxxx        Expert mode.  Provides additional functions.
  33.  
  34.      ----RRRR        Do not read the XLV configuration information from the disks at
  35.                the time _x_l_v__m_g_r is invoked.  This allows _x_l_v__m_g_r to quickly
  36.                startup.  The XLV configuration information can be read from
  37.                the disks at a later time with the rrrreeeesssseeeetttt command.
  38.  
  39.      Commands that pertain to plexes are displayed only when the system has
  40.      been licensed for the plexing portion of XLV.
  41.  
  42.      _x_l_v__m_g_r provides several types of operations:  aaaattttttttaaaacccchhhh, ddddeeeettttaaaacccchhhh, ddddeeeelllleeeetttteeee,
  43.      cccchhhhaaaannnnggggeeee, ssssccccrrrriiiipppptttt, and sssshhhhoooowwww:
  44.  
  45.      aaaattttttttaaaacccchhhh    Add an XLV object to another XLV object.  You can add a volume
  46.                element to a plex or plex to a volume.  The volume element or
  47.                plex to be added must first be created using _x_l_v__m_a_k_e(1M).
  48.  
  49.      ddddeeeettttaaaacccchhhh    Separate a part of an XLV object and make it an independent
  50.                (standalone) XLV object.  For example, if you detach a plex
  51.                from a plexed volume, that plex is separated from the volume
  52.                and made into a standalone plex.  The original volume then has
  53.                one less plex.
  54.  
  55.      ddddeeeelllleeeetttteeee    Delete an entire XLV object.
  56.  
  57.      ssssccccrrrriiiipppptttt    Generate the _x_l_v__m_a_k_e commands required to create some or all
  58.                XLV objects.
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. xxxxllllvvvv____mmmmggggrrrr((((1111MMMM))))                                                        xxxxllllvvvv____mmmmggggrrrr((((1111MMMM))))
  71.  
  72.  
  73.  
  74.      sssshhhhoooowwww      Display the list of XLV objects on the system and their
  75.                structure.
  76.  
  77.      cccchhhhaaaannnnggggeeee    Change an attribute associated with can XLV object.
  78.  
  79.      The commands are:
  80.  
  81.      sssshhhhoooowwww [----lllloooonnnngggg][----vvvveeeerrrrbbbboooosssseeee] aaaallllllll
  82.           Displays all known XLV objects by name and type.  The ----lllloooonnnngggg option
  83.           causes more information about each XLV object to be displayed.  The
  84.           ----vvvveeeerrrrbbbboooosssseeee displays more detailed information, such as the uuid.  The
  85.           following is an example of the output of this command:
  86.  
  87.           xlv_mgr> _ssss_hhhh_oooo_wwww _aaaa_llll_llll
  88.  
  89.           Volume:             root_vol (complete)
  90.           Volume:             db1 (complete)
  91.           Volume Element:     ve12
  92.           Plex:               plex2
  93.  
  94.      sssshhhhoooowwww [----sssshhhhoooorrrrtttt][----vvvveeeerrrrbbbboooosssseeee] kkkkeeeerrrrnnnneeeellll [_v_o_l_u_m_e__n_a_m_e]
  95.           Displays all XLV objects or the specified _v_o_l_u_m_e__n_a_m_e configured
  96.           into the running kernel.  The only XLV objects in the kernel are
  97.           volumes.  Standalone plexes and volume elements are not viable
  98.           objects in the kernel because they cannot be used.  The ----sssshhhhoooorrrrtttt
  99.           option displays terse information on each volume.  The ----vvvveeeerrrrbbbboooosssseeee
  100.           displays more detailed information on each volume.
  101.  
  102.      sssshhhhoooowwww [----lllloooonnnngggg][----vvvveeeerrrrbbbboooosssseeee] llllaaaabbbbeeeellllssss [_d_e_v_i_c_e__v_o_l_u_m_e__h_e_a_d_e_r]
  103.           Displays XLV disk labels on all disks or the specified
  104.           _d_e_v_i_c_e__v_o_l_u_m_e__h_e_a_d_e_r.  The ----lllloooonnnngggg option displays the secondary
  105.           label.
  106.  
  107.      sssshhhhoooowwww ccccoooonnnnffffiiiigggg
  108.           Displays XLV software configuration information about the running
  109.           kernel.  Included are statistics on the XLV memory pools for all
  110.           plexed volumes (if support is present) and all volume elements. For
  111.           example:
  112.  
  113.           xlv_mgr> _ssss_hhhh_oooo_wwww _cccc_oooo_nnnn_ffff_iiii_gggg
  114.  
  115.  
  116.           Allocated subvol locks: 30      locks in use: 8
  117.           Plexing license: present
  118.           Plexing support: present
  119.           Statistic Collection: off
  120.           Plex buffer pool statistics:
  121.                   maximum concurrent I/O's 13;  I/O buffer size 1016 bytes
  122.                buffer pool size 13.21KB;  maximum size 4.00GB
  123.                   pool hits 1121; misses 141; waits 0; resized 4 times
  124.                   memory growth rate 50%; maximum miss rate 10%
  125.           Volume Element buffer pool statistics:
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. xxxxllllvvvv____mmmmggggrrrr((((1111MMMM))))                                                        xxxxllllvvvv____mmmmggggrrrr((((1111MMMM))))
  137.  
  138.  
  139.  
  140.                   maximum concurrent I/O's 53;  I/O buffer size 1.48KB
  141.                buffer pool size 80.32KB;  maximum size 4.00GB
  142.                   pool hits 1636; misses 225; waits 0; resized 5 times
  143.                   memory growth rate 50%; maximum miss rate 10%
  144.           Maximum subvol block number: 0x7fffffff
  145.  
  146.           The SSSSttttaaaattttiiiissssttttiiiicccc CCCCoooolllllllleeeeccccttttiiiioooonnnn tag indicates if statistics gathering is
  147.           enabled (oooonnnn) or disabled (ooooffffffff).
  148.  
  149.           In the pool statistics, hhhhiiiittttssss imply an efficient I/O path and mmmmiiiisssssssseeeessss
  150.           suggest a somewhat slower path.  When the mmmmaaaaxxxxiiiimmmmuuuummmm mmmmiiiissssssss rrrraaaatttteeee is
  151.           exceeded, the buffer pool is grown by the ggggrrrroooowwwwtttthhhh rrrraaaatttteeee. The buffer
  152.           pool size is limited to mmmmaaaaxxxxiiiimmmmuuuummmm ssssiiiizzzzeeee.  The mmmmaaaaxxxxiiiimmmmuuuummmm ccccoooonnnnccccuuuurrrrrrrreeeennnntttt IIII////OOOO''''ssss
  153.           gives an upper bound on the number of efficient I/Os possible, and
  154.           the IIII////OOOO bbbbuuuuffffffffeeeerrrr ssssiiiizzzzeeee is the amount of memory dedicated for each I/O
  155.           request.
  156.  
  157.      sssshhhhoooowwww [----vvvveeeerrrrbbbboooosssseeee] oooobbbbjjjjeeeecccctttt _o_b_j_e_c_t__n_a_m_e
  158.           Displays detailed information on an XLV object _o_b_j_e_c_t__n_a_m_e.  The
  159.           information includes all the XLV parameters and the disk partitions
  160.           that make up the object.
  161.  
  162.           In the example below, the volume named _d_b_1 has one subvolume of type
  163.           ddddaaaattttaaaa that contains two plexes.  The first plex has two volume
  164.           elements, while the second plex only has one volume element.  The
  165.           first volume element in each plex covers the same range of disk
  166.           blocks.  For each volume element, _x_l_v__m_g_r displays the partitions
  167.           that make up the volume element, the size of the partition, and the
  168.           range of this volume's disk blocks that map to the volume element.
  169.           For example:
  170.  
  171.           xlv_mgr> _ssss_hhhh_oooo_wwww _oooo_bbbb_jjjj_eeee_cccc_tttt _dddd_bbbb_1111
  172.           VOL db1 (complete)
  173.           VE db1.data.0.0 [active]
  174.                   start=0, end=1100799, (cat)grp_size=1
  175.                   /dev/dsk/dks1d4s0 (1100800 blks)
  176.           VE db1.data.0.1 [active]
  177.                   start=1100800, end=2201599, (cat)grp_size=1
  178.                   /dev/dsk/dks1d4s1 (1100800 blks)
  179.           VE db1.data.1.0 [active]
  180.                   start=0, end=1100799, (cat)grp_size=1
  181.                   /dev/dsk/dks1d4s2 (1100800 blks)
  182.  
  183.  
  184.      sssshhhhoooowwww ssssttttaaaatttt [_s_u_b_v_o_l_u_m_e]
  185.           Displays statistics gathered for either all subvolumes or the
  186.           specified subvolume.  For example:
  187.  
  188.           xlv_mgr> _ssss_hhhh_oooo_wwww _ssss_tttt_aaaa_tttt _rrrr_oooo_oooo_tttt_...._dddd_aaaa_tttt_aaaa
  189.           Subvolume 0 (root.data):
  190.             read ops: 668,  read blocks: 286015
  191.             write ops: 2025,  write blocks: 305508
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. xxxxllllvvvv____mmmmggggrrrr((((1111MMMM))))                                                        xxxxllllvvvv____mmmmggggrrrr((((1111MMMM))))
  203.  
  204.  
  205.  
  206.           The above example shows the number of read/write operations and
  207.           read/write blocks going to the _dddd_aaaa_tttt_aaaa subvolume of the volume _r_o_o_t.
  208.  
  209.           The following example shows the statistics for subvolume 6 which has
  210.           a striped volume element.
  211.  
  212.           xlv_mgr> _ssss_hhhh_oooo_wwww _ssss_tttt_aaaa_tttt _6666
  213.           Subvolume 6 (rickey.data):
  214.             read ops: 300,  read blocks: 2457600
  215.             write ops: 300,  write blocks: 2457600
  216.               stripe ops: 600,  total units: 19200
  217.                largest single i/o: 32 stripe units,  frequency: 600
  218.                aligned     <    stripe width; ends on stripe unit: 0
  219.                aligned     >    stripe width; ends on stripe unit: 600
  220.                aligned     =    stripe width; ends on stripe unit: 0
  221.                aligned   > or < stripe width; doesn't end on stripe unit: 0
  222.  
  223.                unaligned   <    stripe width; ends on stripe unit: 0
  224.                unaligned   >    stripe width; ends on stripe unit: 0
  225.                unaligned   =    stripe width; doesn't end on stripe unit: 0
  226.                unaligned > or < stripe width; doesn't end on stripe unit: 0
  227.  
  228.           A stripe width is composed of the product of the stripe unit and the
  229.           number of disks comprising the stripe.  The stripe unit determines
  230.           the number of blocks to write to one disk before writing to the
  231.           next.  The stripe statistics are:
  232.  
  233.           ssssttttrrrriiiippppeeee ooooppppssss            The number of operations issued to the
  234.                                 subvolume's striped volume elements.
  235.                                 Depending on the volume geometry, and whether
  236.                                 or not the subvolume is plexed, this may not
  237.                                 match the number of read and write operations.
  238.  
  239.           ttttoooottttaaaallll uuuunnnniiiittttssss           The cumulative count of all stripe units
  240.                                 involved in stripe operations to the
  241.                                 subvolume.
  242.  
  243.           llllaaaarrrrggggeeeesssstttt ssssiiiinnnngggglllleeee iiii////oooo    Keeps track of the largest I/O size issued to
  244.                                 the subvolume measured in stripe units.
  245.  
  246.           ffffrrrreeeeqqqquuuueeeennnnccccyyyy             The number of times the largest I/O was
  247.                                 issued.
  248.  
  249.           There are three parameters for evaluating how an I/O spans a striped
  250.           volume:
  251.  
  252.           aaaalllliiiiggggnnnneeeedddd////uuuunnnnaaaalllliiiiggggnnnneeeedddd     Indicates whether or not the start address of
  253.                                 the I/O begins on a stripe unit boundary.  If
  254.                                 an I/O doesn't start on a boundary, the stripe
  255.                                 unit is used inefficiently.
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. xxxxllllvvvv____mmmmggggrrrr((((1111MMMM))))                                                        xxxxllllvvvv____mmmmggggrrrr((((1111MMMM))))
  269.  
  270.  
  271.  
  272.           <<<< ssssttttrrrriiiippppeeee wwwwiiiiddddtttthhhh
  273.           >>>> ssssttttrrrriiiippppeeee wwwwiiiiddddtttthhhh
  274.           ==== ssssttttrrrriiiippppeeee wwwwiiiiddddtttthhhh        Specifies if the transfer is less than a
  275.                                 stripe width's worth of data, more than a
  276.                                 stripe width, or an even multiple of the
  277.                                 stripe width size.  Transfers of full stripe
  278.                                 widths are optimal since all disks are
  279.                                 accessed evenly.  Transfers of more or less
  280.                                 than a stripe width are less optimal due to
  281.                                 uneven drive access patterns.
  282.  
  283.           ddddooooeeeessssnnnn''''tttt eeeennnndddd oooonnnn aaaa ssssttttrrrriiiippppeeee uuuunnnniiiitttt
  284.           eeeennnnddddssss oooonnnn aaaa ssssttttrrrriiiippppeeee uuuunnnniiiitttt When an I/O ends on a stripe unit, the next
  285.                                 sequential I/O will start aligned on a stripe
  286.                                 unit boundary.  If it doesn't end on a stripe
  287.                                 unit, then the stripe is used inefficiently
  288.                                 since a sequential access will require that
  289.                                 particular unit to be accessed multiple times.
  290.  
  291.      aaaattttttttaaaacccchhhh vvvveeee _s_o_u_r_c_e _d_e_s_t-_p_l_e_x
  292.      aaaattttttttaaaacccchhhh vvvveeee _s_o_u_r_c_e _v_o_l_u_m_e....{ddddaaaattttaaaa|lllloooogggg|rrrrtttt}...._N
  293.           The command appends standalone volume element object _s_o_u_r_c_e to the
  294.           end of destination plex.  This enables you to grow a plex or volume
  295.           by adding a volume element to the end of a plex.  You can use this
  296.           in conjunction with _x_f_s__g_r_o_w_f_s(1M) to grow an XFS filesystem without
  297.           unmounting it.
  298.  
  299.           Suppose that you have a volume element, _s_p_a_r_e_v_e, that contains a
  300.           single disk partition /_d_e_v/_d_s_k/_d_k_s_1_d_4_s_2.  The following command
  301.           appends it to plex 0 of the data subvolume of volume _d_b_1:
  302.  
  303.           xlv_mgr> _aaaa_tttt_tttt_aaaa_cccc_hhhh _vvvv_eeee _ssss_pppp_aaaa_rrrr_eeee_vvvv_eeee _dddd_bbbb_1111_...._dddd_aaaa_tttt_aaaa_...._0000
  304.           xlv_mgr> _ssss_hhhh_oooo_wwww _oooo_bbbb_jjjj_eeee_cccc_tttt _dddd_bbbb_1111
  305.           VOL db1 (complete)
  306.           VE db1.data.0.0 [active]
  307.                   start=0, end=1100799, (cat)grp_size=1
  308.                   /dev/dsk/dks1d4s0 (1100800 blks)
  309.           VE db1.data.0.1 [active]
  310.                   start=1100800, end=2201599, (cat)grp_size=1
  311.                   /dev/dsk/dks1d4s1 (1100800 blks)
  312.           VE db1.data.0.2 [active]
  313.                   start=2201600, end=3302399, (cat)grp_size=1
  314.                   /dev/dsk/dks1d4s2 (1100800 blks)
  315.  
  316.      aaaattttttttaaaacccchhhh pppplllleeeexxxx _s_o_u_r_c_e _v_o_l_u_m_e....{ddddaaaattttaaaa|lllloooogggg|rrrrtttt}
  317.           Appends standalone plex object _s_o_u_r_c_e to existing volume _v_o_l_u_m_e.
  318.           This command creates duplicate copies of the data on the volume for
  319.           greater reliability.  This operation is sometimes called _m_i_r_r_o_r_i_n_g.
  320.           After the plex has been added, _x_l_v__m_g_r automatically initiates a
  321.           plex revive operation; this copies the data from the original XLV
  322.           plexes to the newly added plex so that the plex holds the same data
  323.           as the original plexes in the volume.  The following appends a plex
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. xxxxllllvvvv____mmmmggggrrrr((((1111MMMM))))                                                        xxxxllllvvvv____mmmmggggrrrr((((1111MMMM))))
  335.  
  336.  
  337.  
  338.           named _p_l_e_x_2 to the data subvolume of volume _d_b_1:
  339.  
  340.           xlv_mgr> _aaaa_tttt_tttt_aaaa_cccc_hhhh _pppp_llll_eeee_xxxx _pppp_llll_eeee_xxxx_2222 _dddd_bbbb_1111_...._dddd_aaaa_tttt_aaaa
  341.  
  342.           Use the sssshhhhoooowwww oooobbbbjjjjeeeecccctttt command to display volume _d_b_1 and see that the
  343.           disk partitions that were part of _p_l_e_x_2 are now a component of _d_b_2.
  344.           _p_l_e_x_2 no longer exists as a standalone plex since it was merged into
  345.           volume _d_b_1.
  346.  
  347.      iiiinnnnsssseeeerrrrtttt vvvveeee _s_o_u_r_c_e _v_o_l....{ddddaaaattttaaaa|lllloooogggg|rrrrtttt}...._N
  348.      iiiinnnnsssseeeerrrrtttt vvvveeee _s_o_u_r_c_e _p_l_e_x...._N
  349.           Inserts standalone volume element object _s_o_u_r_c_e into the destination
  350.           plex object.  This enables you to add a volume element into a gap in
  351.           a plex.
  352.  
  353.           _x_l_v__m_g_r requires that the destination be a fully qualified XLV
  354.           pathname (for example, movies.data.0).  The pathname must specify
  355.           the relative position within the plex to insert the volume element.
  356.           (The first volume element in a plex is at position 0.)  The plex to
  357.           be operated on can be a standalone plex or a part of a volume.  If
  358.           the plex is part of a volume, the volume, subvolume, and plex must
  359.           be specified.  In the example below it is volume _t_e_s_t.  The
  360.           following example inserts a volume element _v_e_5 into a gap in the
  361.           volume _t_e_s_t.  There is a gap because the first volume element starts
  362.           at block number 76200.  First display the configuration of _t_e_s_t and
  363.           _v_e_5 before inserting _v_e_5 into _t_e_s_t.
  364.  
  365.           xlv_mgr> _ssss_hhhh_oooo_wwww _oooo_bbbb_jjjj_eeee_cccc_tttt _tttt_eeee_ssss_tttt
  366.  
  367.           VOL test (has holes)
  368.           VE test.data.0.0 [active]
  369.                   start=76200, end=152399, (cat)grp_size=1
  370.                   /dev/dsk/dks0d2s1 (76200 blks)
  371.           VE test.data.0.1 [active]
  372.                   start=152400, end=228599, (cat)grp_size=1
  373.                   /dev/dsk/dks0d2s2 (76200 blks)
  374.  
  375.           xlv_mgr> _ssss_hhhh_oooo_wwww _oooo_bbbb_jjjj_eeee_cccc_tttt _vvvv_eeee_5555
  376.  
  377.           VE ve5 [empty]
  378.                   start=0, end=76199, (cat)grp_size=1
  379.                   /dev/dsk/dks0d2s5 (76200 blks)
  380.  
  381.           xlv_mgr> _iiii_nnnn_ssss_eeee_rrrr_tttt _vvvv_eeee _vvvv_eeee_5555 _tttt_eeee_ssss_tttt_...._dddd_aaaa_tttt_aaaa_...._0000
  382.  
  383.           xlv_mgr> _ssss_hhhh_oooo_wwww _oooo_bbbb_jjjj_eeee_cccc_tttt _tttt_eeee_ssss_tttt
  384.  
  385.           VOL test (complete)
  386.           VE test.data.0.0 [stale]
  387.                   start=0, end=76199, (cat)grp_size=1
  388.                   /dev/dsk/dks0d2s5 (76200 blks)
  389.           VE test.data.0.1 [active]
  390.  
  391.  
  392.  
  393.                                                                         PPPPaaaaggggeeee 6666
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. xxxxllllvvvv____mmmmggggrrrr((((1111MMMM))))                                                        xxxxllllvvvv____mmmmggggrrrr((((1111MMMM))))
  401.  
  402.  
  403.  
  404.                   start=76200, end=152399, (cat)grp_size=1
  405.                   /dev/dsk/dks0d2s1 (76200 blks)
  406.           VE test.data.0.2 [active]
  407.                   start=152400, end=228599, (cat)grp_size=1
  408.                   /dev/dsk/dks0d2s2 (76200 blks)
  409.  
  410.      ddddeeeettttaaaacccchhhh [----ffffoooorrrrcccceeee] vvvveeee _p_l_e_x...._N _v_e-_o_b_j_e_c_t
  411.      ddddeeeettttaaaacccchhhh [----ffffoooorrrrcccceeee] vvvveeee _v_o_l_u_m_e....{ddddaaaattttaaaa|lllloooogggg|rrrrtttt}...._N _v_e-_o_b_j_e_c_t
  412.           Removes specified volume element from its parent object and save it
  413.           as _v_e-_o_b_j_e_c_t.  This command separates a volume element from its
  414.           parent plex.  This volume element can later be added to some other
  415.           XLV object.  The plex from which the volume element is removed can
  416.           be a standalone plex or part of a volume.  The detached volume
  417.           element becomes a standalone XLV volume element object.  You must
  418.           specify the fully qualified pathname of the volume element to be
  419.           detached and the name to be given to the detached volume element.
  420.           The ----ffffoooorrrrcccceeee option forces the detach when the the parent object is
  421.           missing any pieces.  The detach operation leaves the volume element
  422.           intact.
  423.  
  424.      ddddeeeettttaaaacccchhhh [----ffffoooorrrrcccceeee] pppplllleeeexxxx _v_o_l_n_a_m_e....{ddddaaaattttaaaa|lllloooogggg|rrrrtttt}...._p_l_e_x_n_o _p_l_e_x_o_b_j_e_c_t
  425.           This command removes the specified plex from its parent object and
  426.           saves it as _p_l_e_x_o_b_j_e_c_t.  The ----ffffoooorrrrcccceeee option forces the detach when
  427.           the the parent object is missing any pieces.  This new standalone
  428.           plex can later be added back to a volume via the aaaattttttttaaaacccchhhh pppplllleeeexxxx
  429.           command.
  430.  
  431.           The following example shows how to detach the first plex from a
  432.           volume:
  433.  
  434.           xlv_mgr> _dddd_eeee_tttt_aaaa_cccc_hhhh _pppp_llll_eeee_xxxx _dddd_bbbb_1111_...._dddd_aaaa_tttt_aaaa_...._0000 _ssss_aaaa_vvvv_eeee_dddd_pppp_llll_eeee_xxxx
  435.  
  436.      ddddeeeelllleeeetttteeee oooobbbbjjjjeeeecccctttt _n_a_m_e
  437.           Deletes the object _n_a_m_e.  This command enables you to delete a
  438.           volume, a standalone plex, or a standalone volume element.  The XLV
  439.           configuration is removed from the disks that make up the XLV object.
  440.           Because the XLV configuration information is stored in the volume
  441.           header (see _v_h(7M)), this command does not affect any user data that
  442.           may have been written to the user disk partitions.
  443.  
  444.      ddddeeeelllleeeetttteeee aaaallllllll[____llllaaaabbbbeeeellllssss]
  445.           An expert command, this command deletes the XLV labels from all
  446.           disks on the local system.  You might want to do this to initialize
  447.           all the disks on a new system and ensure that there is no leftover
  448.           XLV configuration information on the disks.  Note that this is a
  449.           very dangerous operation.  Deleting the disk labels destroys all of
  450.           the XLV objects on the system.
  451.  
  452.      ddddeeeelllleeeetttteeee llllaaaabbbbeeeellll _d_e_v_i_c_e__v_o_l_u_m_e__h_e_a_d_e_r
  453.           An expert command, this command deletes the XLV disk label from the
  454.           named _d_e_v_i_c_e__v_o_l_u_m_e__h_e_a_d_e_r.
  455.  
  456.  
  457.  
  458.  
  459.                                                                         PPPPaaaaggggeeee 7777
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466. xxxxllllvvvv____mmmmggggrrrr((((1111MMMM))))                                                        xxxxllllvvvv____mmmmggggrrrr((((1111MMMM))))
  467.  
  468.  
  469.  
  470.      cccchhhhaaaannnnggggeeee nnnnaaaammmmeeee _o_b_j_e_c_t__n_a_m_e _n_e_w_n_a_m_e
  471.           This command renames the given XLV object _o_b_j_e_c_t__n_a_m_e to _n_e_w_n_a_m_e.
  472.  
  473.           The following example shows how to rename an object _s_m_a_l_l to _b_i_g.
  474.  
  475.           xlv_mgr> _cccc_hhhh_aaaa_nnnn_gggg_eeee _nnnn_aaaa_mmmm_eeee _ssss_mmmm_aaaa_llll_llll _bbbb_iiii_gggg
  476.  
  477.      cccchhhhaaaannnnggggeeee nnnnooooddddeeeennnnaaaammmmeeee _n_a_m_e _o_b_j_e_c_t ...
  478.           This command changes the nodename associated with the named objects.
  479.  
  480.           The following example shows how to set the node name for the volume
  481.           _d_b_1 to _h_o_m_e_s_t_e_a_d.
  482.  
  483.           xlv_mgr> _cccc_hhhh_aaaa_nnnn_gggg_eeee _nnnn_oooo_dddd_eeee_nnnn_aaaa_mmmm_eeee _hhhh_oooo_mmmm_eeee_ssss_tttt_eeee_aaaa_dddd _dddd_bbbb_1111
  484.  
  485.      cccchhhhaaaannnnggggeeee oooonnnnlllliiiinnnneeee _v_o_l....{ddddaaaattttaaaa|lllloooogggg|rrrrtttt}...._N...._N
  486.      cccchhhhaaaannnnggggeeee oooofffffffflllliiiinnnneeee _v_o_l....{ddddaaaattttaaaa|lllloooogggg|rrrrtttt}...._N...._N
  487.           This command transitions the specified volume element online or
  488.           offline.
  489.  
  490.      cccchhhhaaaannnnggggeeee ssssttttaaaatttt oooonnnn
  491.      cccchhhhaaaannnnggggeeee ssssttttaaaatttt ooooffffffff
  492.           Expert commands to enable or disable statistics gathering.  The
  493.           default setting for statistics gathering is specified in the
  494.           configuration file /_v_a_r/_s_y_s_g_e_n/_m_a_s_t_e_r._d/_x_l_v.
  495.  
  496.      cccchhhhaaaannnnggggeeee ttttyyyyppppeeee vvvveeee|pppplllleeeexxxx|vvvvoooollll _o_b_j_e_c_t
  497.           This command changes the type of the given object.
  498.  
  499.           The following example shows how to change a standalone plex object
  500.           _s_a__p_l_e_x to a volume and then rename the volume to _b_a_c_k_u_p__v_o_l.
  501.  
  502.           xlv_mgr> _cccc_hhhh_aaaa_nnnn_gggg_eeee _tttt_yyyy_pppp_eeee _vvvv_oooo_llll _ssss_aaaa______pppp_llll_eeee_xxxx
  503.           xlv_mgr> _cccc_hhhh_aaaa_nnnn_gggg_eeee _nnnn_aaaa_mmmm_eeee _ssss_aaaa______pppp_llll_eeee_xxxx _bbbb_aaaa_cccc_kkkk_uuuu_pppp______vvvv_oooo_llll
  504.  
  505.      cccchhhhaaaannnnggggeeee vvvveeee____ssssttttaaaarrrrtttt _s_t_a_r_t__b_l_o_c_k _s_a__v_e
  506.           This command changes the start address of a standalone volume
  507.           element.  This is useful to aid in detaching a volume element from
  508.           one object and arbitrarily inserting it in another.
  509.  
  510.      cccchhhhaaaannnnggggeeee pppplllleeeexxxxmmmmeeeemmmm  _m_a_x-_p_o_o_l-_i/_o_s  _g_r_o_w_t_h%  _m_a_x_i_m_u_m-_m_i_s_s%  [_m_a_x_i_m_u_m-_s_i_z_e]
  511.      cccchhhhaaaannnnggggeeee vvvveeeemmmmeeeemmmm  _m_a_x-_p_o_o_l-_i/_o_s  _g_r_o_w_t_h%  _m_a_x_i_m_u_m-_m_i_s_s% [_m_a_x_i_m_u_m-_s_i_z_e]
  512.           An expert command, these two commands allow you to modify the
  513.           parameters for the two XLV memory/buffer pools.
  514.  
  515.           When servicing an I/O request, there are two types of memory
  516.           allocated.  The first is for plexed volumes, if plexing support is
  517.           present, and the second is for the underlying volume elements.  If
  518.           no memory available in the respective memory pool, XLV gets memory
  519.           from the system general purpose memory allocator.  By changing the
  520.           maximum number of concurrent I/O _m_a_x-_p_o_o_l-_i/_o_s, you can increase the
  521.           efficiency of an I/O request because memory taken from the pool is
  522.  
  523.  
  524.  
  525.                                                                         PPPPaaaaggggeeee 8888
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532. xxxxllllvvvv____mmmmggggrrrr((((1111MMMM))))                                                        xxxxllllvvvv____mmmmggggrrrr((((1111MMMM))))
  533.  
  534.  
  535.  
  536.           more efficient than using the general purpose allocator.  Changing
  537.           the growth percentage _g_r_o_w_t_h% alters how fast the pool grows when
  538.           the number of misses exceeds the miss percentage _m_a_x_i_m_u_m-_m_i_s_s%.  The
  539.           _m_a_x_i_m_u_m-_s_i_z_e parameter is expressed in kilobyte units and is used to
  540.           limit the size of the memory pool.
  541.  
  542.           Note that any changes to the pool parameters are only for life of
  543.           the running system.  The changes are not kept across system
  544.           restarts.
  545.  
  546.      rrrreeeesssseeeetttt
  547.           Reinitializes _x_l_v__m_g_r data structures by rereading all the XLV
  548.           configuration information from all the disks.
  549.  
  550.      rrrreeeesssseeeetttt ssssttttaaaatttt [_s_u_b_v_o_l_u_m_e]
  551.           An expert command to clear the statistics of either all subvolumes
  552.           or the named subvolume.
  553.  
  554.      ssssccccrrrriiiipppptttt [----wwwwrrrriiiitttteeee _f_i_l_e_n_a_m_e] oooobbbbjjjjeeeecccctttt _n_a_m_e
  555.      ssssccccrrrriiiipppptttt [----wwwwrrrriiiitttteeee _f_i_l_e_n_a_m_e] aaaallllllll
  556.           Generates the required _x_l_v__m_a_k_e commands to create the named object
  557.           or all objects.  When the ----wwwwrrrriiiitttteeee option is specified, the _x_l_v__m_a_k_e
  558.           commands are saved into _f_i_l_e_n_a_m_e.
  559.  
  560.      hhhheeeellllpppp Displays a summary of _x_l_v__m_g_r commands.
  561.  
  562.      ????    Same as hhhheeeellllpppp.
  563.  
  564.      sssshhhh   Fork a shell.
  565.  
  566.      qqqquuuuiiiitttt Terminate this session.
  567.  
  568. EEEEXXXXAAAAMMMMPPPPLLLLEEEESSSS
  569.      These examples show the making of some XLV objects and the growing and
  570.      plexing of a volume.  The resulting volume configuration is saved to a
  571.      _x_l_v__m_a_k_e(1M) input file.
  572.  
  573.      Use _x_l_v__m_a_k_e(1M) to create a volume named _b_i_g_v_o_l_u_m_e.
  574.  
  575.           xlv_make> _vvvv_oooo_llll _bbbb_iiii_gggg_vvvv_oooo_llll_uuuu_mmmm_eeee
  576.           bigvolume
  577.           xlv_make> _dddd_aaaa_tttt_aaaa
  578.           bigvolume.data
  579.           xlv_make> _pppp_llll_eeee_xxxx
  580.           bigvolume.data.0
  581.           xlv_make> _vvvv_eeee _dddd_kkkk_ssss_1111_3333_1111_dddd_3333_ssss_7777
  582.           bigvolume.data.0.0
  583.           xlv_make> _eeee_nnnn_dddd
  584.           Object specification completed
  585.           xlv_make> _eeee_xxxx_iiii_tttt
  586.           Newly created objects will be written to disk.
  587.           Is this what you want?(yes)  _yyyy_eeee_ssss
  588.  
  589.  
  590.  
  591.                                                                         PPPPaaaaggggeeee 9999
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598. xxxxllllvvvv____mmmmggggrrrr((((1111MMMM))))                                                        xxxxllllvvvv____mmmmggggrrrr((((1111MMMM))))
  599.  
  600.  
  601.  
  602.           Invoking xlv_assemble
  603.  
  604.      Create a standalone volume element _s_p_a_r_e__v_e.
  605.  
  606.           # _xxxx_llll_vvvv______mmmm_aaaa_kkkk_eeee
  607.           xlv_make> _vvvv_eeee _ssss_pppp_aaaa_rrrr_eeee______vvvv_eeee _dddd_kkkk_ssss_1111_3333_1111_dddd_4444_ssss_7777
  608.           spare_ve
  609.           xlv_make> _eeee_nnnn_dddd
  610.           Object specification completed
  611.           xlv_make> _eeee_xxxx_iiii_tttt
  612.           Newly created objects will be written to disk.
  613.           Is this what you want?(yes)  _yyyy_eeee_ssss
  614.           Invoking xlv_assemble
  615.  
  616.      Use the _x_l_v__m_g_r _aaaa_tttt_tttt_aaaa_cccc_hhhh _vvvv_eeee command to grow the volume _b_i_g_v_o_l_u_m_e by
  617.      appending _s_p_a_r_e__v_e to plex 0 of the data subvolume.
  618.  
  619.           # _xxxx_llll_vvvv______mmmm_gggg_rrrr
  620.           xlv_mgr> _aaaa_tttt_tttt_aaaa_cccc_hhhh _vvvv_eeee _ssss_pppp_aaaa_rrrr_eeee______vvvv_eeee _bbbb_iiii_gggg_vvvv_oooo_llll_uuuu_mmmm_eeee_...._dddd_aaaa_tttt_aaaa_...._0000
  621.           xlv_mgr> _eeee_xxxx_iiii_tttt
  622.  
  623.      Create a standalone plex _s_p_a_r_e__p_l_e_x which can be used to completely
  624.      mirror the volume _b_i_g_v_o_l_u_m_e.
  625.  
  626.           xlv_make> _pppp_llll_eeee_xxxx _ssss_pppp_aaaa_rrrr_eeee______pppp_llll_eeee_xxxx
  627.           spare_plex
  628.           xlv_make> _vvvv_eeee _dddd_kkkk_ssss_1111_3333_3333_dddd_3333_ssss_7777
  629.           spare_plex.0
  630.           xlv_make> _vvvv_eeee _dddd_kkkk_ssss_1111_3333_3333_dddd_4444_ssss_7777
  631.           spare_plex.1
  632.           xlv_make> _eeee_nnnn_dddd
  633.           Object specification completed
  634.           xlv_make> _eeee_xxxx_iiii_tttt
  635.           Newly created objects will be written to disk.
  636.           Is this what you want?(yes)  _yyyy_eeee_ssss
  637.           Invoking xlv_assemble
  638.  
  639.      Use the _x_l_v__m_g_r _aaaa_tttt_tttt_aaaa_cccc_hhhh _pppp_llll_eeee_xxxx command to mirror the volume _b_i_g_v_o_l_u_m_e by
  640.      adding plex _s_p_a_r_e__p_l_e_x to the data subvolume.
  641.  
  642.           # _xxxx_llll_vvvv______mmmm_gggg_rrrr
  643.           xlv_mgr> _aaaa_tttt_tttt_aaaa_cccc_hhhh _pppp_llll_eeee_xxxx _ssss_pppp_aaaa_rrrr_eeee______pppp_llll_eeee_xxxx _bbbb_iiii_gggg_vvvv_oooo_llll_uuuu_mmmm_eeee_...._dddd_aaaa_tttt_aaaa
  644.           xlv_mgr> _eeee_xxxx_iiii_tttt
  645.  
  646.      Save the volume configuration to a file.
  647.  
  648.           # _xxxx_llll_vvvv______mmmm_gggg_rrrr
  649.           xlv_mgr> _ssss_cccc_rrrr_iiii_pppp_tttt _----_wwww_rrrr_iiii_tttt_eeee _////_eeee_tttt_cccc_////_xxxx_llll_vvvv______mmmm_aaaa_kkkk_eeee_...._bbbb_iiii_gggg_vvvv_oooo_llll_uuuu_mmmm_eeee_...._iiii_nnnn_pppp_uuuu_tttt _oooo_bbbb_jjjj_eeee_cccc_tttt _bbbb_iiii_gggg_vvvv_oooo_llll_uuuu_mmmm_eeee
  650.           xlv_mgr> _eeee_xxxx_iiii_tttt
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.                                                                        PPPPaaaaggggeeee 11110000
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664. xxxxllllvvvv____mmmmggggrrrr((((1111MMMM))))                                                        xxxxllllvvvv____mmmmggggrrrr((((1111MMMM))))
  665.  
  666.  
  667.  
  668. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  669.      xlv_assemble(1M), xlv_make(1M), xlv_plexd(1M), xlv_shutdown(1M), xlv(7M).
  670.  
  671.      _T_c_l _a_n_d _t_h_e _T_k _T_o_o_l_k_i_t by John K. Ousterhout, Addison-Wesley, 1994.
  672.  
  673. NNNNOOOOTTTTEEEESSSS
  674.      _x_l_v__m_g_r operations modify both the XLV disk labels and the kernel data
  675.      structures as appropriate.  This means that you do not need to run
  676.      _x_l_v__a_s_s_e_m_b_l_e(1M) for your changes to take effect.  The only exceptions
  677.      are the XLV label deleting commands ddddeeeelllleeeetttteeee aaaallllllll____llllaaaabbbbeeeellllssss and ddddeeeelllleeeetttteeee llllaaaabbbbeeeellll,
  678.      which effect only the disk labels.
  679.  
  680.      _x_l_v__m_g_r automatically initiates plex revive operations (see
  681.      _x_l_v__p_l_e_x_d(1M)) as required after adding a new plex to a volume or a
  682.      volume element to a plexed volume.
  683.  
  684.      You should be root when running _x_l_v__m_g_r.  Otherwise you have limited
  685.      functionality.
  686.  
  687.  
  688.  
  689.  
  690.  
  691.  
  692.  
  693.  
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.                                                                        PPPPaaaaggggeeee 11111111
  724.  
  725.  
  726.  
  727.